group { name: "e/init/splash";
   set { name: "logo_mono";
      image { image: "logo.png" COMP;  size: 601 601 99999 99999; }
      image { image: "logo2.png" COMP; size: 301 301   600   600; }
      image { image: "logo3.png" COMP; size: 151 151   300   300; }
      image { image: "logo4.png" COMP; size:  76  76   150   150; }
      image { image: "logo5.png" COMP; size:  0    0    75    75; }
   }
   script {
      public is_ready;
      public do_end;
   }
   parts {
      part { name: "bg"; type: RECT;
         clip_to: "fader";
         description { state: "default" 0.0;
            color_class: "/bg-dark/normal/init/base";
         }
      }
      part { name: "logo";
         scale: 1;
         clip_to: "fader";
         description { state: "default" 0.0;
            image.normal: "logo_mono";
            rel1.relative: 0.5 0.5;
            rel2.relative: 0.5 0.5;
            color_class: "/fg/normal/init/logo";
            color: 255 255 255 0; // no cc
            FIXED_SIZE(150, 150)
         }
         description { state: "active" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 255; // no cc
         }
      }
      part { name: "e.text.title"; type: TEXT; mouse_events: 0;
         scale: 1;
         clip_to: "fader";
         description { state: "default" 0.0;
            align: 0.5 1.0;
            rel1.relative: 0.05 0.0;
            rel1.offset: 4 -16;
            rel1.to_y: "e.text.status";
            rel2.relative: 0.95 0.0;
            rel2.offset: -5 -16;
            rel2.to_y: "e.text.status";
            color_class: "/fg/normal/init/text/title";
            text { font: FNBD; size: 20;
               text: "Title here";
               min: 0 1;
               text_class: "init_title";
            }
            fixed: 0 1;
         }
      }
      part { name: "e.text.status"; type: TEXT;
         scale: 1;
         clip_to: "fader";
         description { state: "default" 0.0;
            align: 0.5 1.0;
            rel1.relative: 0.05 0.0;
            rel1.to_y: "logo";
            rel1.offset: 4 -16;
            rel2.relative: 0.95 0.0;
            rel2.offset: -5 -16;
            rel2.to_y: "logo";
            color_class: "/fg/normal/init/text/status";
            text { font: FN; size: 10;
               text: "Status here";
               min: 0 1;
               text_class: "init_status";
            }
            fixed: 0 1;
         }
      }
      part { name: "e.text.version"; type: TEXT;
         scale: 1;
         clip_to: "fader";
         description { state: "default" 0.0;
            align: 1.0 1.0;
            rel1.relative: 1.0 1.0;
            rel1.offset: -16 -16;
            rel2.relative: 1.0 1.0;
            rel2.offset: -16  -16;
            color_class: "/fg/normal/init/text/version";
            text { font: FN; size: 8;
               text: "0.22.0";
               min: 1 1;
               ellipsis: -1;
               align: 1.0 1.0;
               text_class: "init_version";
            }
            fixed: 1 1;
         }
      }
      part { name: "blanker"; type: RECT; mouse_events: 0;
         description { state: "default" 0.0;
            color: 0 0 0 255; // no cc
            visible: 1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            color: 0 0 0 0; // no cc
            visible: 0;
         }
      }
      part { name: "fader"; type: RECT;
         description { state: "default" 0.0;
            color: 255 255 255 255; // no cc
         }
         description { state: "faded" 0.0;
            color: 255 255 255 0; // no cc
         }
      }
   }
   programs {
      program { signal: "load"; source: "";
         script {
            set_int(is_ready, 0);
            set_int(do_end, 0);
         }
      }
      program { signal: "show"; source: "";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 1.0 USE_DURATION_FACTOR 1;
         in: 1.0 0.0;
         target: "blanker";
      }
      program { signal: "show"; source: "";
         action: STATE_SET "active" 0.0;
         target: "logo";
         in: 1.5 0.0;
         transition: SINUSOIDAL 0.8 USE_DURATION_FACTOR 1;
         after: "ready";
      }
      program { signal: "show"; source: "";
         action: PLAY_SAMPLE "splash" 1.0 EFFECT;
      }
      program { name: "ready";
         script {
            new val;
            val = get_int(do_end);
            if (val == 1)
              run_program(PROGRAM:"exit1");
            else
              set_int(is_ready, 1);
         }
      }
      program { signal: "e,state,done"; source: "e";
         script {
            new val;
            set_int(do_end, 1);
            val = get_int(is_ready);
            if (val == 1)
            run_program(PROGRAM:"exit1");
         }
      }
      program { name: "exit1";
         action: STATE_SET "faded" 0.0;
         transition: SINUSOIDAL 1.0 CURRENT USE_DURATION_FACTOR 1;
         target: "fader";
         after: "exit2";
      }
      program { name: "exit2";
         action: SIGNAL_EMIT "e,state,done_ok" "e";
      }
   }
}

group { name: "e/init/extra_screen";
   script {
      public is_ready;
      public do_end;
   }
   parts {
      part { name: "bg"; type: RECT;
         clip_to: "fader";
         description { state: "default" 0.0;
            color_class: "/bg-dark/normal/init/base";
         }
      }
      part { name: "blanker"; type: RECT; mouse_events: 0;
         description { state: "default" 0.0;
            color: 0 0 0 255; // no cc
            visible: 1;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            color: 0 0 0 0; // no cc
            visible: 0;
         }
      }
      part { name: "fader"; type: RECT;
         description { state: "default" 0.0;
            color: 255 255 255 255; // no cc
         }
         description { state: "faded" 0.0;
            color: 255 255 255 0; // no cc
         }
      }
   }
   programs {
      program { signal: "load"; source: "";
         script {
            set_int(is_ready, 0);
            set_int(do_end, 0);
         }
      }
      program { signal: "show"; source: "";
         action: STATE_SET "visible" 0.0;
         transition: DECELERATE 1.0 USE_DURATION_FACTOR 1;
         in: 1.0 0.0;
         target: "blanker";
         after: "ready";
      }
      program { name: "ready";
         in: 0.5 0.0;
         script {
            new val;
            val = get_int(do_end);
            if (val == 1)
              run_program(PROGRAM:"exit1");
            else
              set_int(is_ready, 1);
         }
      }
      program { signal: "e,state,done"; source: "e";
         script {
            new val;
            set_int(do_end, 1);
            val = get_int(is_ready);
            if (val == 1)
            run_program(PROGRAM:"exit1");
         }
      }
      program { name: "exit1";
         action: STATE_SET "faded" 0.0;
         transition: SINUSOIDAL 1.0 CURRENT USE_DURATION_FACTOR 1;
         target: "fader";
         after: "exit2";
      }
      program { name: "exit2";
         action: SIGNAL_EMIT "e,state,done_ok" "e";
      }
   }
}
